package com.golfbox.icbc.api;

import com.icbc.api.AbstractIcbcRequest;
import com.icbc.api.BizContent;
import com.icbc.api.response.JftApiPayCustomsApplyResponseV1;

public class JftApiPayCustomsApplyRequestV1 extends AbstractIcbcRequest<JftApiPayCustomsApplyResponseV1> {
	
	public static class JftApiPayCustomsApplyRequestV1Biz implements BizContent {
		
		private String appId;// 外部商户编号
		private String outVendorId;// 外部子商户编号
		private String outOrderId;// 外部支付订单编号
		private String outApplyNo;// 外部报关订单编号
		private String applyType;// 报送类型
		private String currency;// 支付币制
		private String payAmount;// 支付金额
		private String cardType;// 支付人证件类型
		private String cardNo;// 支付人证件号码
		private String customerName;// 支付人姓名
		private String cellphoneNo;// 支付人电话
		private String notifyUrl;// 异步通知地址
		private String merCode;// 电商平台代码
		private String merName;// 电商平台名称
		private String varNote;// 备注
		
		public String getAppId() {
			return appId;
		}
		public void setAppId(String appId) {
			this.appId = appId;
		}
		public String getOutVendorId() {
			return outVendorId;
		}
		public void setOutVendorId(String outVendorId) {
			this.outVendorId = outVendorId;
		}
		public String getOutOrderId() {
			return outOrderId;
		}
		public void setOutOrderId(String outOrderId) {
			this.outOrderId = outOrderId;
		}
		public String getOutApplyNo() {
			return outApplyNo;
		}
		public void setOutApplyNo(String outApplyNo) {
			this.outApplyNo = outApplyNo;
		}
		public String getApplyType() {
			return applyType;
		}
		public void setApplyType(String applyType) {
			this.applyType = applyType;
		}
		public String getCurrency() {
			return currency;
		}
		public void setCurrency(String currency) {
			this.currency = currency;
		}
		public String getPayAmount() {
			return payAmount;
		}
		public void setPayAmount(String payAmount) {
			this.payAmount = payAmount;
		}
		public String getCardType() {
			return cardType;
		}
		public void setCardType(String cardType) {
			this.cardType = cardType;
		}
		public String getCardNo() {
			return cardNo;
		}
		public void setCardNo(String cardNo) {
			this.cardNo = cardNo;
		}
		public String getCustomerName() {
			return customerName;
		}
		public void setCustomerName(String customerName) {
			this.customerName = customerName;
		}
		public String getCellphoneNo() {
			return cellphoneNo;
		}
		public void setCellphoneNo(String cellphoneNo) {
			this.cellphoneNo = cellphoneNo;
		}
		public String getNotifyUrl() {
			return notifyUrl;
		}
		public void setNotifyUrl(String notifyUrl) {
			this.notifyUrl = notifyUrl;
		}
		public String getMerCode() {
			return merCode;
		}
		public void setMerCode(String merCode) {
			this.merCode = merCode;
		}
		public String getMerName() {
			return merName;
		}
		public void setMerName(String merName) {
			this.merName = merName;
		}
		public String getVarNote() {
			return varNote;
		}
		public void setVarNote(String varNote) {
			this.varNote = varNote;
		}
		
		@Override
		public String toString() {
			return "JftApiPayCustomsApplyRequestV1Biz [appId=" + appId + ", outVendorId=" + outVendorId
					+ ", outOrderId=" + outOrderId + ", outApplyNo=" + outApplyNo + ", applyType=" + applyType
					+ ", currency=" + currency + ", payAmount=" + payAmount + ", cardType=" + cardType + ", cardNo=" + cardNo
					+ ", customerName=" + customerName + ", cellphoneNo=" + cellphoneNo + ", notifyUrl=" + notifyUrl
					+ ", merCode=" + merCode + ", merName=" + merName + ", varNote=" + varNote + "]";
		}
	}

	@Override
	public Class<JftApiPayCustomsApplyRequestV1Biz> getBizContentClass() {
		return JftApiPayCustomsApplyRequestV1Biz.class;
	}

	@Override
	public String getMethod() {
		return "POST";
	}

	@Override
	public Class<JftApiPayCustomsApplyResponseV1> getResponseClass() {
		return JftApiPayCustomsApplyResponseV1.class;
	}

	@Override
	public boolean isNeedEncrypt() {
		return false;
	}

	public JftApiPayCustomsApplyRequestV1() {
		setServiceUrl("https://gw.open.icbc.com.cn/api/jft/api/pay/customs/apply/V1");
	}
}
